Enterprise Resource Planning (“ERP”) software is a type of software used by many companies to plan and manage the various business functions, such as budgeting, accounting, human resources, inventory management, customer relationship management, and so forth. Typically a customer or a third-party consultant will customize an ERP application to satisfy that customer's specific business requirements. To customize an ERP application, the customer or consultant may develop custom code that uses functionality exposed by the ERP application. Such customizations may improve the usability of the ERP applications or provide additional functionality.
Conventionally, as is illustrated in FIG. 1, software developers write ERP application code using a programming language such as C++, C#, J#, Visual Basic, or other programming language that is suitable for compilation into an intermediate language (IL). The ERP application source code 100 comprises main application source code 101 and object source code 102 for various objects accessed by the main application. The ERP application source code 100 is then input into a compiler 105 to generate a machine independent, IL code, such as Microsoft Intermediate Language (MSIL) code 110. The .NET framework provides a run-time environment for running managed application. The runtime environment includes the Common Language Runtime (“CLR”), which provides services such as memory management, security, Just-In-Time (“JIT”) compilation, etc. To run the ERP application, the CLR 115 is loaded into memory on the computer 120. During runtime, the CLR 115 converts the MSIL code 110 to executable instructions 125 compatible for execution by the underlying CPU and controls the execution of those instructions.
FIG. 2 is a flow diagram that illustrates a conventional process 200 used by software developers to test a modification or extension of the ERP application using the conventional, monolithic ERP application development model of FIG. 1. At block 205, the software developer modifies the source code of an object class. After modifying even just a single function of an object class, the software developer recompiles the entire ERP application source code 100 at block 210 to test the modification. At block 215, the software developer loads and executes the ERP application. At block 220, the software developer tests the modification to the object class. At block 225, if the software developer determines that the correct result is achieved, the process ends. Otherwise, the process continues at block 205 to modify the source code, recompile all of the source code for the ERP application, and test the modified ERP application until the software developer concludes that it is functionally correct.
Given the enormous size of conventional ERP applications, the time needed to compile the ERP application (at block 210) to test even minor changes can be considerable (e.g., more than 15 minutes). Those skilled in the art will appreciate that the slowness of the recompilation means that the speed of development, testing, maintenance is constrained by such a large recompilation time.